package com.zeta.auth.common.config;

import com.zeta.api.client.logs.ILogsApi;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.zetaframework.log.event.LogListener;
import org.zetaframework.log.event.LoginLogListener;


/**
 * 日志事件配置
 *
 * @author gcc
 */
@Configuration
@RequiredArgsConstructor
public class LogEventConfiguration {

    private final ILogsApi logsApi;


    /**
     * <p>配置登录日志事件监听实现</p>
     *
     * 说明:<br>
     * zetaframework核心包中，定义了登录日志事件{@link LogListener}和相应的事件监听{@link LoginLogListener}。
     * 开发者只需要发布对应的登录事件，并实现具体的登录日志存储业务即可。
     */
    @Bean
    public LoginLogListener sysLoginLogListener() {
        // 远程调用 保存登录日志
        return new LoginLogListener(logsApi::saveLoginLog);
    }

}
